1. Field of the Invention
This invention pertains to encoding of an input sequence, particularly to modulation coding of a sequence that is transmitted over a data channel such as a data channel connected to a peripheral device.
2. Related Art and other Considerations
Modulation coding is often employed for information that is to be transmitted over a channel or recorded on some type of medium, e.g., magnetic disk. Modulation coding typically occurs after the information has been compressed and subjected to error correction (ECC) encoding. Modulation coding provides various advantages, such as increasing noise immunity and providing parameters which can be employed in the transmission or recording process (e.g., for regulating oscillators, gain, etc.).
Modulation coding techniques can employ one or more codebooks. In a codebook-based encoding scheme, an input sequence is used to obtain an output sequence from the one or more codebooks. For example, the input sequence can serve as an address of a memory location in the codebook which contains a corresponding output sequence, the output sequence serving as the encoded value for the input sequence.
A problem with conventional codebook-based encoding techniques is that some codes require significant memory for the codebook(s). For example, a simple look-up table approach for a rate 16/17 code requires 2.sup.16 codewords (output sequences) of length 17, or 139 Kbytes of memory. Large codebooks are generally not desirable in view of memory costs and the complexity of addressing schemes for such large codebooks.
In U.S. Pat. No. 5,608,397, Soljanin proposes a coding scheme which purports to reduce codebook size for a given code rate for a dc-free modulation code. In accordance with this scheme, m input symbols are input to a first codebook to select an n symbol codeword while p input symbols are input to a control codebook to obtain a control codeword. The n symbol codeword and the control codeword are then input to an inverter, which inverts symbols in half of the codewords according to associated symbols in the control codeword.
A technique for generating dc-free sequences is also proposed in Soljanin, Emina, "Decoding Techniques For Some Specially Constructed DC-Free Codes", 1997 IEEE International Conference On Communications, Vol 3, Jun. 8-12, 1997, pp. 1633-1637. According to this technique, an input word of length k is divided into two blocks of length p and q.times.m, i.e., k=p+qm. The first p bits are fed into a rate p/q dc-free code to determine which of q codebooks are to be used for the following q length m blocks of the input word. Thus it appears that this technique always divides the input word into blocks of the same length, and has its codebooks of essentially the same size.
What is needed, and consequentially an object of the present invention, is method and apparatus which reduces memory requirements for codebook-based encoding schemes.